home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / AIFF.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  5.0 KB  |  217 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        AIFF.mod
  3.  
  4.      Contains:    Definition of AIFF file format components.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$TAGS-*)
  21. (*$CALLING PASCAL*)
  22. MODULE AIFF;
  23.  
  24. IMPORT Types;
  25.  
  26. (* $PUSH*)
  27. (* $ALIGN MAC68K*)
  28. (* $LibExport+*)
  29.  
  30. CONST
  31.     AIFFID*                        = LONG("AIFF");
  32.     AIFCID*                        = LONG("AIFC");
  33.     FormatVersionID*                = LONG("FVER");
  34.     CommonID*                    = LONG("COMM");
  35.     FORMID*                        = LONG("FORM");
  36.     SoundDataID*                    = LONG("SSND");
  37.     MarkerID*                    = LONG("MARK");
  38.     InstrumentID*                = LONG("INST");
  39.     MIDIDataID*                    = LONG("MIDI");
  40.     AudioRecordingID*            = LONG("AESD");
  41.     ApplicationSpecificID*        = LONG("APPL");
  42.     CommentID*                    = LONG("COMT");
  43.     NameID*                        = LONG("NAME");
  44.     AuthorID*                    = LONG("AUTH");
  45.     CopyrightID*                    = LONG("(c) ");
  46.     AnnotationID*                = LONG("ANNO");
  47.  
  48.     NoLooping*                    = 0;
  49.     ForwardLooping*                = 1;
  50.     ForwardBackwardLooping*        = 2;
  51. (* AIFF-C Versions *)
  52.     AIFCVersion1*                = $A2805140;
  53.  
  54. (* Compression Names *)
  55.     NoneName*     = 'not compressed';
  56.     ACE2to1Name*  = 'ACE 2-to-1';
  57.     ACE8to3Name*  = 'ACE 8-to-3';
  58.     MACE3to1Name* = 'MACE 3-to-1';
  59.     MACE6to1Name* = 'MACE 6-to-1';
  60.  
  61. (* Compression Types *)
  62.     NoneType*                    = LONG("NONE");
  63.     ACE2Type*                    = LONG("ACE2");
  64.     ACE8Type*                    = LONG("ACE8");
  65.     MACE3Type*                    = LONG("MAC3");
  66.     MACE6Type*                    = LONG("MAC6");
  67.  
  68.     
  69. TYPE
  70.     ID* = LONGINT;
  71.  
  72.     MarkerIdType* = INTEGER;
  73.  
  74.     ChunkHeader* = RECORD
  75.         ckID*:                    ID;
  76.         ckSize*:                    LONGINT;
  77.     END;
  78.  
  79.     ContainerChunk* = RECORD
  80.         ckID*:                    ID;
  81.         ckSize*:                    LONGINT;
  82.         formType*:                ID;
  83.     END;
  84.  
  85.     FormatVersionChunk* = RECORD
  86.         ckID*:                    ID;
  87.         ckSize*:                    LONGINT;
  88.         timestamp*:                LONGINT;
  89.     END;
  90.  
  91.     FormatVersionChunkPtr* = POINTER TO FormatVersionChunk;
  92.  
  93.     CommonChunk* = RECORD
  94.         ckID*:                    ID;
  95.         ckSize*:                    LONGINT;
  96.         numChannels*:            INTEGER;
  97.         numSampleFrames*:        LONGINT;
  98.         sampleSize*:                INTEGER;
  99.         sampleRate*:                Types.Extended80;
  100.     END;
  101.  
  102.     CommonChunkPtr* = POINTER TO CommonChunk;
  103.  
  104.     ExtCommonChunk* = RECORD
  105.         ckID*:                    ID;
  106.         ckSize*:                    LONGINT;
  107.         numChannels*:            INTEGER;
  108.         numSampleFrames*:        LONGINT;
  109.         sampleSize*:                INTEGER;
  110.         sampleRate*:                Types.Extended80;
  111.         compressionType*:        ID;
  112.         compressionName*:        (*ΔΔ PACKED*) ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF CHAR;            (* variable length array, Pascal string *)
  113.     END;
  114.  
  115.     ExtCommonChunkPtr* = POINTER TO ExtCommonChunk;
  116.  
  117.     SoundDataChunk* = RECORD
  118.         ckID*:                    ID;
  119.         ckSize*:                    LONGINT;
  120.         offset*:                    LONGINT;
  121.         blockSize*:                LONGINT;
  122.     END;
  123.  
  124.     SoundDataChunkPtr* = POINTER TO SoundDataChunk;
  125.  
  126.     Marker* = RECORD
  127.         id*:                        MarkerIdType;
  128.         position*:                LONGINT;
  129.         markerName*:                Types.Str255;
  130.     END;
  131.  
  132.     MarkerChunk* = RECORD
  133.         ckID*:                    ID;
  134.         ckSize*:                    LONGINT;
  135.         numMarkers*:                INTEGER;
  136.         Markers*:                ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF Marker;                    (* variable length array *)
  137.     END;
  138.  
  139.     MarkerChunkPtr* = POINTER TO MarkerChunk;
  140.  
  141.     AIFFLoop* = RECORD
  142.         playMode*:                INTEGER;
  143.         beginLoop*:                MarkerIdType;
  144.         endLoop*:                MarkerIdType;
  145.     END;
  146.  
  147.     InstrumentChunk* = (*ΔΔPACKEDΔΔ*) RECORD
  148.         ckID*:                    ID;
  149.         ckSize*:                    LONGINT;
  150.         baseFrequency*:            Types.UInt8;
  151.         detune*:                    Types.UInt8;
  152.         lowFrequency*:            Types.UInt8;
  153.         highFrequency*:            Types.UInt8;
  154.         lowVelocity*:            Types.UInt8;
  155.         highVelocity*:            Types.UInt8;
  156.         gain*:                    INTEGER;
  157.         sustainLoop*:            AIFFLoop;
  158.         releaseLoop*:            AIFFLoop;
  159.     END;
  160.  
  161.     InstrumentChunkPtr* = POINTER TO InstrumentChunk;
  162.  
  163.     MIDIDataChunk* = RECORD
  164.         ckID*:                    ID;
  165.         ckSize*:                    LONGINT;
  166.         MIDIdata*:                (*ΔΔ PACKED*) ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF Types.SInt8; (* UInt8 *) (* variable length array *)
  167.     END;
  168.  
  169.     MIDIDataChunkPtr* = POINTER TO MIDIDataChunk;
  170.  
  171.     AudioRecordingChunk* = RECORD
  172.         ckID*:                    ID;
  173.         ckSize*:                    LONGINT;
  174.         AESChannelStatus*:        (*ΔΔPACKEDΔΔ*) ARRAY 24 (*ΔΔ[0..23]ΔΔ*) OF Types.SInt8; (* UInt8 *)
  175.     END;
  176.  
  177.     AudioRecordingChunkPtr* = POINTER TO AudioRecordingChunk;
  178.  
  179.     ApplicationSpecificChunk* = RECORD
  180.         ckID*:                    ID;
  181.         ckSize*:                    LONGINT;
  182.         applicationSignature*:    Types.OSType;
  183.         data*:                    (*ΔΔPACKEDΔΔ*) ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF Types.SInt8; (* UInt8 *) (* variable length array *)
  184.     END;
  185.  
  186.     ApplicationSpecificChunkPtr* = POINTER TO ApplicationSpecificChunk;
  187.  
  188.     Comment* = RECORD
  189.         timeStamp*:                LONGINT;
  190.         marker*:                    MarkerIdType;
  191.         count*:                    INTEGER;
  192.         text*:                    (*ΔΔ PACKED*) ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF CHAR;            (* variable length array, Pascal string *)
  193.     END;
  194.  
  195.     CommentsChunk* = RECORD
  196.         ckID*:                    ID;
  197.         ckSize*:                    LONGINT;
  198.         numComments*:            INTEGER;
  199.         comments*:                (*ΔΔ PACKED*) ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF Comment;            (* variable length array *)
  200.     END;
  201.  
  202.     CommentsChunkPtr* = POINTER TO CommentsChunk;
  203.  
  204.     TextChunk* = RECORD
  205.         ckID*:                    ID;
  206.         ckSize*:                    LONGINT;
  207.         text*:                    (*ΔΔ PACKED*) ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF CHAR;            (* variable length array, Pascal string *)
  208.     END;
  209.  
  210.     TextChunkPtr* = POINTER TO TextChunk;
  211.  
  212.  
  213. (* $ALIGN RESET*)
  214. (* $POP*)
  215.  
  216.  END AIFF.
  217.